package com.yungu.swift.common.service;

import com.yungu.swift.base.ResponseData;
import com.yungu.swift.base.service.BaseService;
import com.yungu.swift.common.model.dto.CommonMessageStatusDto;
import com.yungu.swift.common.model.dto.CommonSystemMessageDto;

import java.util.List;
import java.util.Map;

/**
 * Copyright © 厦门云谷互联信息有限公司 2018-2020 All Right Reserved
 * <p>
 * 系统消息业务逻辑接口
 *
 * @author Zerrion
 * @version 1.1.0-SNAPSHOT
 */
public interface CommonMessageStatusService extends BaseService<CommonMessageStatusDto> {

    /**
     * 根据uuids删除消息
     *
     * @param userUuid 参数
     * @param uuids    参数
     * @return ResponseData
     */
    ResponseData<Boolean> delMessagesByUuids(String userUuid, String uuids);

    /**
     * 根据用户uuid删除所有消息
     *
     * @param userUuid 参数
     * @return ResponseData
     */
    ResponseData<Boolean> delAllMsg(String userUuid);

    /**
     * 首页点击XX删除消息
     *
     * @param uuid 参数
     * @return ResponseData
     */
    ResponseData<Boolean> delHomeMessagesByUuid(String uuid);

    /**
     * 批量添加
     *
     * @param list 参数
     * @return ResponseData
     */
    ResponseData<Integer> addBatch(List<CommonMessageStatusDto> list);

    /**
     * 增加系统用户的消息状态
     *
     * @param systemMessageDto
     * @param userUuids
     * @return
     */
    ResponseData<Boolean> addSysMessageStatus(CommonSystemMessageDto systemMessageDto, List<String> userUuids);

    /**
     * 修改系统用户的消息状态
     *
     * @param params
     * @return
     */
    ResponseData<Boolean> updSysMessageStatus(Map<String, Object> params);

    /**
     * 获取消息主键集合
     *
     * @param params 参数
     * @return List<String>
     */
    ResponseData<List<String>> getMsgUuids(Map<String, Object> params);

}